package br.ufrn.cerescaico.sepe.beans;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.Type;

/**
 * Classe que representa a entidade e-mail do sistema SEPE.
 * @author Taciano Morais Silva
 * @version 17/08/2010, 20:27
 * @since 17/08/2010, 20:27
 */
@Entity
@Table(name = "email")
public class Email implements Bean, Serializable {

    /**
     * Identificador do email.
     */
    @Id
    @Column(name = "id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    /**
     * Destino do e-mail.
     */
    @Column(name = "destino", length = 100, nullable = false)
    private String destino;

    /**
     * Assunto do e-mail.
     */
    @Column(name = "assunto", length = 255, nullable = false)
    private String assunto;

    /**
     * Mensagem do e-mail.
     */
    @Column(name = "conteudo", nullable = false)
    @Type(type="text")
    private String conteudo;

    public Email() {
        this.destino = "";
        this.assunto = "";
        this.conteudo = "";
    }

    @Override
    public Integer getId() {
        return id;
    }

    @Override
    public void setId(Integer id) {
        this.id = id;
    }

    public String getDestino() {
        return destino;
    }

    public void setDestino(String destino) {
        this.destino = destino;
    }

    public String getAssunto() {
        return assunto;
    }

    public void setAssunto(String assunto) {
        this.assunto = assunto;
    }

    public String getConteudo() {
        return conteudo;
    }

    public void setConteudo(String conteudo) {
        this.conteudo = conteudo;
    }

    @Override
    public int compareTo(Object o) {
        Email other = (Email) o;
        return this.getId().compareTo(other.getId());
    }
}
